﻿///////////////////////////////////////////////////////////////////////////
//  Copyright(c) 2023, GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007
//
/// @file    world.h
/// @brief   game 世界
/// @version 0.1
/// @history 修改历史
/// @warning 没有警告
///////////////////////////////////////////////////////////////////////////
#ifndef __WORLD_H__
#define __WORLD_H__

#include "klb_type.h"
#include "klbutil/klb_map.h"
#include "klbutil/klb_hlist.h"

#if defined(__cplusplus)
extern "C" {
#endif


typedef struct world_t_
{
    klb_map_t       creater_map;        ///< 元素创建表

    klb_hlist_t*    p_scene_hlist;      ///< 场景表
}world_t;


/// @brief 创建game世界
/// @return world_t* game世界
world_t* world_create();


/// @brief 销毁game世界
/// @param [in] *p_world    game世界
/// @return 无
void world_destroy(world_t* p_world);


/// @brief 添加
int world_append(world_t* p_world, const char* p_type, const char* p_scene, const char* p_path);


/// @brief 移除
int world_remove(world_t* p_world, const char* p_scene, const char* p_path);


#ifdef __cplusplus
}
#endif

#endif // __WORLD_H__
//end
